{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# PowerShell\n",
    "\n",
    "* PowerShellとは\n",
    "    * マイクロソフトが開発した拡張可能なコマンドラインインターフェース (CLI) シェルおよびスクリプト言語\n",
    "    * オブジェクト指向に基づいて設計されており、.NET Frameworkを基盤としている\n",
    "    * Windows 7以降のオペレーティングシステム (OS) には標準で搭載\n",
    "* 概念\n",
    "    * 基本的な機能をもつ様々なコンポーネントを組み合わせたタスクによって構成される\n",
    "        * コンポーネントは、コマンドレット (cmdlet) と呼ばれるプログラム\n",
    "        * 実体は.NETのクラス\n",
    "    * コマンドレット間でのデータの受け渡し\n",
    "        * オブジェクト（構造化されたデータ）で行なわれる\n",
    "            * 古典的なUNIX型アプローチ（テキスト入出力をパイプする）とは異なる\n",
    "        * コマンドラインから個別にアクセスされた場合、コマンドレットの出力は自動的にテキストに変換される\n",
    "        * 出力が他のコマンドレットに渡されるのであれば、そのコマンドレットの入力として最も適切な形式に変換されて渡される\n",
    "            * これにより、UNIX型システムで一般的なテキスト処理ユーティリティ（grepやawkなど）が不要となる\n",
    "            * インタラクティブに、またはスクリプト環境（より複雑なプログラミング言語が必要）の中で、様々なコマンドレットを結合することができる\n",
    "        "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# コマンド\n",
    "\n",
    "```\n",
    "### プロセス名がpで始まるものを表示する\n",
    "> Get-Process p*\n",
    "================================================\n",
    "Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName\n",
    "-------  ------    -----      -----     ------     --  -- -----------\n",
    "    797      46    54932       8580       2.58   2184   1 powershell\n",
    "    233      28    25924      15036              8084   0 PresentationFontCache\n",
    "    362      38    33472       2356       0.98  14532   1 PrivacyIconClient\n",
    "    547      25     5344      13056              3316   0 PulseSecureService\n",
    "    329      20     3824      10896              6524   0 PulseSecureService\n",
    "================================================\n",
    "\n",
    "### 100MB以上メモリを消費しているプロセスを表示する\n",
    "> Get-Process | Where { $_.WS -gt 100MB }\n",
    "================================================\n",
    "Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName\n",
    "-------  ------    -----      -----     ------     --  -- -----------\n",
    "    423      54   130608     160548       7.80   2124   1 chrome\n",
    "   2226      98   164716     153700     196.63  11764   1 chrome\n",
    "    571      38   216224     114840      81.28  12128   1 chrome\n",
    "    434      41    77356     102840      12.31  13996   1 chrome\n",
    "      0       0     1428     340020              2320   0 Memory Compression\n",
    "================================================\n",
    "\n",
    "### 小文字を大文字に変換する\n",
    "> \"hello, world!\".ToUpper()\n",
    "================================================\n",
    "HELLO, WORLD!\n",
    "================================================\n",
    "\n",
    "### 文字列を挿入する(0文字目が先頭)\n",
    "> \"私はです。\".Insert(2, \"ftakao2007\")\n",
    "================================================\n",
    "私はftakao2007です。\n",
    "================================================\n",
    "```"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
